/* ===========================================================
 * TradeManager : a application to trade strategies for the Java(tm) platform
 * ===========================================================
 *
 * (C) Copyright 2011-2011, by Simon Allen and Contributors.
 *
 * Project Info:  org.trade
 *
 * This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; either version 2.1 of the License, or
 * (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
 * License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
 * USA.
 *
 * [Java is a trademark or registered trademark of Oracle, Inc.
 * in the United States and other countries.]
 *
 * (C) Copyright 2011-2011, by Simon Allen and Contributors.
 *
 * Original Author:  Simon Allen;
 * Contributor(s):   -;
 *
 * Changes
 * -------
 *
 */
package org.trade.persistent.dao;

// Generated Feb 21, 2011 12:43:33 PM by Hibernate Tools 3.4.0.CR1

import static javax.persistence.GenerationType.IDENTITY;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Version;

import org.trade.core.dao.Aspect;

/**
 * Contract generated by hbm2java
 * 
 * @author Simon Allen
 * @version $Revision: 1.0 $
 */
@Entity
@Table(name = "contract")
public class ContractId extends Aspect implements Serializable, Cloneable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5691902477608387034L;

	private List<TradePosition> tradePositions = new ArrayList<TradePosition>(0);

	public ContractId() {
	}

	public ContractId(Integer id, Integer version) {
		this.setIdContract(id);
		this.setVersion(version);
	}

	/**
	 * Method getIdContract.
	 * 
	 * @return Integer
	 */
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "idContract", unique = true, nullable = false)
	public Integer getIdContract() {
		return this.id;
	}

	/**
	 * Method setIdContract.
	 * 
	 * @param idContract
	 *            Integer
	 */
	public void setIdContract(Integer idContract) {
		this.id = idContract;
	}

	/**
	 * Method getTradePositions.
	 * 
	 * @return List<TradePosition>
	 */
	@OneToMany(mappedBy = "contract", fetch = FetchType.LAZY)
	public List<TradePosition> getTradePositions() {
		return this.tradePositions;
	}

	/**
	 * Method setTradePositions.
	 * 
	 * @param tradePositions
	 *            List<TradePosition>
	 */
	public void setTradePositions(List<TradePosition> tradePositions) {
		this.tradePositions = tradePositions;
	}

	/**
	 * Method getVersion.
	 * 
	 * @return Integer
	 */
	@Version
	@Column(name = "version")
	public Integer getVersion() {
		return this.version;
	}

	/**
	 * Method setVersion.
	 * 
	 * @param version
	 *            Integer
	 */
	public void setVersion(Integer version) {
		this.version = version;
	}
}
